Iptables -> Direcionar para Terminal Service Windows 2003

1. Iptables -> Direcionar para Terminal Service Windows 2003

Anderson Diego Ribeiro
macintosh_

(usa Slackware)

Enviado em 21/12/2007 - 23:38h

Ola Amigos.

Possuo um servidor linux (Slackware 10.0), conectado a internet atraves de um ip fixo. Na minha rede local possuo um outro servidor com o Windows 2003 Server instalado. Preciso fazer o direcionamento de portas, para que seja possivel fazer acesso remoto pelo terminal service. Tentei varias configuracoes diferentes, que eu encontrei em varios foruns na internet, mas ainda nao obtive sucesso. Alguem sabe dizer o que esta errado no meu arquivo de configuracao do firewall ??

Segue abaixo o arquivo rc.firewall


#Variaveis
LAN1="eth1"
WAN1="eth0"
# IP Servidor Windows 2003 Server: 192.168.10.200
# IP Real Internet (Fixo) Servidor Linux: 200.xxx.xxx.3

REDE="192.168.10.0/24"
P_PX="35000"

iptables -F
iptables -t nat -F
iptables -X
iptables -Z

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 563 -j ACCEPT
#iptables -A INPUT -p tcp --dport 1863 -j ACCEPT # - MSN
iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
iptables -A INPUT -p tcp --dport 31000 -j ACCEPT
iptables -A INPUT -p tcp --dport 31001 -j ACCEPT
iptables -A INPUT -p tcp --dport 31002 -j ACCEPT
iptables -A INPUT -i $LAN1 -p tcp --dport $P_PX -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -s 192.168.10.200 -d 0.0.0.0/0 -j ACCEPT #Maquina com acesso total - Servidor
iptables -A FORWARD -s 192.168.10.101 -d 0.0.0.0/0 -j ACCEPT #Maquina com acesso total - Notebook


iptables -A FORWARD -i $LAN1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i $LAN1 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -s $REDE -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s $REDE -p tcp --dport 563 -j ACCEPT

iptables -A FORWARD -i $LAN1 -d 0.0.0.0/0 -p tcp --dport 25 -j ACCEPT #Acesso a qualquer smtp
iptables -A FORWARD -i $LAN1 -d 0.0.0.0/0 -p tcp --dport 110 -j ACCEPT #Accesso a qualquer pop
iptables -A FORWARD -i $LAN1 -p tcp --dport $P_PX -j ACCEPT #Aceita da rede local o acesso proxy

iptables -A FORWARD -i $LAN1 -p tcp --dport 80 -j DROP #Bloqueia a porta 80

iptables -t nat -A POSTROUTING -o $WAN1 -j MASQUERADE

#Direcionamento de Portas para o Terminal Service do Windows 2003
iptables -A INPUT -i eth0 -p TCP --dport 3389 --syn -j ACCEPT
iptables -A INPUT -i eth0 -p UDP --dport 3389 -j ACCEPT

# DE EXT PARA LAN
iptables -A FORWARD -i eth0 -o eth1 -s 200.xxx.xxx.3 -d 192.168.10.200 -p TCP --dport 3389 -j ACCEPT

# DE EXT PARA EXT
iptables -A FORWARD -i eth0 -o eth1 -s 200.xxx.xxx.3 -d 192.168.10.200 -p UDP --dport 3389 -j ACCEPT

iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 3389 -j DNAT --to-destination 192.168.10.200:3389
iptables -A FORWARD -i eth0 -d 192.168.10.200/24 -p TCP --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p UDP --dport 3389 -j DNAT --to-destination 192.168.10.200:3389
iptables -A FORWARD -i eth0 -d 192.168.10.200/24 -p UDP --dport 3389 -j ACCEPT

#Outra regra que tambem nao funcionou
#iptables -t nat -A PREROUTING -i $WAN1 -p tcp --dport 3389 -j DNAT --to 192.168.10.200
iptables -t nat -A PREROUTING -i $WAN1 -p tcp --dport 58000 -j DNAT --to 192.168.10.200
iptables -t nat -A PREROUTING -i $WAN1 -p tcp --dport 59000 -j DNAT --to 192.168.10.200

#Contra Syn-fllod
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

#Contra Ping da Morte
#iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#Contra nmap
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#iptables -A FORWARD -p tcp -tcp-flags SYN,ACK -j DROP

#Logando os pacotes
#Logando pacotes bloqueados vindo da internet
iptables -A INPUT -p tcp -i $LAN1 -j LOG --log-level DEBUG --log-prefix "Pacote tcp : "
iptables -A INPUT -p icmp -i $LAN1 -j LOG --log-level DEBUG --log-prefix "Pacote icmp : "

iptables -A FORWARD -m unclean -j DROP


echo "Firewall Carregado com Sucesso"


  


2. IPTABLES - TS

Marcelo de Souza Sant´Anna
SantAnna

(usa Outra)

Enviado em 22/12/2007 - 22:07h

Apesar do seu arquivo está um pouco confuso, eu consegui identificar que o seu problema está na sua regra da tabela filter e não na nat.

Quando alguém tenta acessar o seu servidor 2003 de fora, apesar de acessar diretamente o seu endereço externo do seu linuxbox que está fazendo o NAT, o endereço de origem não é do seu linuxbox e sim do computador de quem está fazendo o acesso. Desta forma você não pode "amarrar" ao endereço externo do seu linuxbox como fez na regra:

iptables -A FORWARD -i eth0 -o eth1 -s 200.xxx.xxx.3 -d 192.168.10.200 -p TCP --dport 3389 -j ACCEPT


Você deveria fazer algo como:

$IPTABLES -A FORWARD -d $SERVIDOR2003 -m state --state NEW -m tcp -p tcp -m multiport --dports 3389 -j ACCEPT

LEMBRE-SE: Para o que você quer, o endereço de destino é que será alterado pelo NAT e não o de origem.


A regra abaixo faz a alteração no NAT:

$IPTABLES -t nat -A PREROUTING -d 200.xxx.xxx.3 -p tcp --dport 3389 -j DNAT --to-destination $SERVIDOR2003:3389

abs


3. Re: Iptables -> Direcionar para Terminal Service Windows 2003

Anderson Diego Ribeiro
macintosh_

(usa Slackware)

Enviado em 24/12/2007 - 13:04h

Amigo SantAnna. obrigado pela força.

Tentei o que vc me passou, mas mesmo assim não deu certo. Limpei o arquivo rc.firewall e deixei apenas algumas regras de direcionamento, mas mesmo assim naum funcionou. olhe soh como eu deixei:

#rc.firewall
iptables -t nat -F
iptables -F
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 0:65500 -j DNAT --to-dest 192.168.10.200
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 0:65000 -j DNAT --to-dest 192.168.10.200
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to 192.168.10.200

#Regra que naum deu certo
#iptables -A FORWARD -d 192.168.10.200 -m state --state NEW -m tcp -p tcp -m multiport --dports 3389 -j ACCEPT

Será que tem alguma coisa errada em outro arquivo ??

Obrigado.


4. IPTABLES

Marcelo de Souza Sant´Anna
SantAnna

(usa Outra)

Enviado em 24/12/2007 - 14:26h

Tente o seguinte:

OBS.: Estou presumindo que seu servidor esteja com o endereco IP interno 192.168.10.1 e rede interna 192.168.10.0/24.

abs



#!/bin/bash

#Comando do Iptables
IPTABLES="iptables"

#Interface Externa
IFEXT="eth1"
ENDIFEXT="200.xxx.xxx.3"

#Interface Interna
IFINT="eth0"
ENDIFINT="192.168.10.1"

#Interface Local
IFLO="lo"
ENDIFLO="127.0.0.1"

#Redes
REDEIFEXT="200.xxx.xxx.0/24"
REDEIFINT="192.168.10.0/24"

#Computador para gerenciamento
PCMNG="192.168.10.xxx"

# Servidor MTS
SRVMTS2003="192.168.10.200"

#Portas
PTSSH="35000"
PTDNS="53"
PTMTS="3389"

#Carrega o modulo ip_nat_ftp
MODCARREGADO=0;
QTLIN_LSMOD=$(lsmod | cut -d " " -f1 | wc -l)
for I in $(seq 1 $QTLIN_LSMOD)
do
LINATUAL_LSMOD=$(lsmod | cut -d " " -f 1 | head -n $I | tail -n 1);
if [[ $LINATUAL_LSMOD == "ip_nat_ftp" ]]
then
MODCARREGADO=1;
fi
done
if [[ $MODCARREGADO == "0" ]]
then
modprobe ip_nat_ftp;
fi

#Limpa todas as regras existentes e configura as politicas padrao
$IPTABLES -t filter -F
$IPTABLES -t nat -F
$IPTABLES -t filter -P INPUT DROP
$IPTABLES -t filter -P FORWARD DROP
$IPTABLES -t filter -P OUTPUT ACCEPT



#CHAIN INPUT
$IPTABLES -t filter -A INPUT -i $IFLO -j ACCEPT
$IPTABLES -t filter -A INPUT ! -s $REDEIFINT -d $ENDIFEXT -m icmp -p icmp --icmp-type any -j ACCEPT
$IPTABLES -t filter -A INPUT -s $REDEIFINT -d $ENDIFINT -m icmp -p icmp --icmp-type any -j ACCEPT

$IPTABLES -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -t filter -A INPUT ! -s $REDEIFINT -d $ENDIFEXT -m state --state NEW -m tcp -p tcp -m multiport --dports $PTSSH, $PTMTS -j ACCEPT
$IPTABLES -t filter -A INPUT -s $PCMNG -d $ENDIFINT -m state --state NEW -m tcp -p tcp --dport $PTSSH -j ACCEPT



##CHAIN FORWARD
$IPTABLES -t filter -A FORWARD -s $REDEIFINT -m icmp -p icmp --icmp-type any -j DROP

# Voce estara permitindo aqui a passagem de quaisquer pacotes de DNS, mas depois feche para apenas o seu servidor se comunicar com os servidores DNS externos. NAO DEIXE SEUS COMPUTADORES INTERNOS FALAR COM UM SERVIDOR DNS QUE NAO O SEU!!!
# Caso seu servidor DNS seja de algum provedor, permita que se comuniquem somente com ele...
$IPTABLES -t filter -A FORWARD -m udp -p udp --dport $PTDNS -j ACCEPT


$IPTABLES -t filter -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

######Regras de Mapeamento na tabela filter
$IPTABLES -t filter -A FORWARD -d $SRVMTS2003 -m state --state NEW -m tcp -p tcp -m multiport --dports $PTMTS -j ACCEPT


######Cria as regras da Tabela NAT

######CHAIN PRETROUTING

#Mapeamentos MTMS - Administracao
$IPTABLES -t nat -A PREROUTING -d $ENDIFEXT -p tcp --dport $PTMTS -j DNAT --to-destination $SRVMTS2003:$PTMTS






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts